import lejos.nxt.Button;
import lejos.nxt.LCD;
import lejos.robotics.subsumption.Behavior;

/**
 *
 * @author Nicolas
 */
public class ChangerDeCellule implements Behavior {

    /**
     * Demande le contrôle quand le robot passe sur un entre-cellule
     *
     * @return true si le capteur de luminosité détecte du noir
     */
    public boolean takeControl() {
        try {
            return Robot.estSurDuNoir()||Robot.CHANGEMENT_CELLULE;
        } catch (Exception ex) {
            Robot.justSay("Erreur takeControl ChangerDeCellule");
            return false;
        }
    }

    /**
     * Méthode immédiatement appelée après action
     */
    public void suppress() {
        try {
            
        } catch (Exception ex) {
            Robot.justSay("Erreur suppress ChangerDeCellule");
        }

    }

    /**
     * Gère le compte des cases parcourues
     */
    public void action_empty() {
        
    }    
    public void action() {    

        try {
            Robot.CHANGEMENT_CELLULE=false;
			
            LCD.refresh();
            Robot.Pilot.forward();
            if(Robot.estSurDuNoir()){
                while (Robot.estSurDuNoir()){
                    LCD.drawString("valeur"+Robot.readLightValue(), 0, 2);
                }
            }
			//On va jusqu'au milieu de la case suivante et on met à jour le labyrinthe
            Robot.Pilot.travel(3f);
            LCD.clear();
            Labyrinthe.draw(0, 0);
            LCD.refresh();
            Button.ENTER.waitForPressAndRelease();
        } catch (Exception ex) {
            Robot.justSay("Erreur action ChangerDeCellule");
        }
    }

}
